package com.hq.learnmybatisplus.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 * 字段填充处理器
 * @author hq
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    /**
     * 新增时填充
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        //有 createTime 这个属性就设置值 没有就不设置值
        boolean createTime1 = metaObject.hasSetter("createTime");
        if(createTime1){
            setInsertFieldValByName("createTime", LocalDateTime.now(),metaObject);
        }
    }

    /**
     * 修改时填充
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        //有 updateTime 这个属性就设置值 没有就不设置值
        boolean updateTime1 = metaObject.hasSetter("updateTime");
        //只有没有设置值的时候才自动填充
        if(updateTime1){
            setUpdateFieldValByName("updateTime",LocalDateTime.now(), metaObject);
        }
    }
}
